package top.huhuiyu.p4;

import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Random;

/**
 * @author 胡辉煜
 */
public class UtilStudy {

  public void rand() {
    Random random = new Random();
    int i = random.nextInt();

    for (int j = 0; j < 10; j++) {
      i = random.nextInt();
      System.out.println("随机数：" + i);
    }
    // 如果我希望产生指定范围之内的随机数
    // 比如三个骰子的随机数模拟应该3-18之间
    // 如果我希望随机是字符，比如a-z的字符随机10个
  }

  public void rand2() {
    Random random = new Random();
    // 模拟一个骰子的随机数1-6
    System.out.println("随机一个骰子的结果：");
    // i++ 等同于 i=i+1
    for (int i = 0; i < 20; i++) {
      // (上届-下届+1) + 下届
      int num = random.nextInt(6 - 1 + 1) + 1;
      //print表示不换行输出
      System.out.print(num + " ");
    }
    System.out.println();

  }

  public void rand3() {
    Random random = new Random();
    // 模拟三个骰子的随机数3-18
    System.out.println("随机三个骰子的结果：");
    // i++ 等同于 i=i+1
    for (int i = 0; i < 20; i++) {
      // (上届-下届+1) + 下届
      int num = random.nextInt(18 - 3 + 1) + 3;
      //print表示不换行输出
      System.out.print(num + " ");
    }
    System.out.println();
  }


  public void rand4() {
    // toUpperCase方法是转大写 toLowerCase方法是转小写
    String info = "abcdefghijklmnopqrstuvwxyz0123456789".toUpperCase();
    // 字符串.charAt(索引)表示获取索引对应位置的单个字符
    // java的索引都是从0开始的
    System.out.println(info.charAt(0));
    System.out.println(info.charAt(10));
    System.out.println(info.charAt(35));
    // 获取字符串的长度
    System.out.println("字符串的长度：" + info.length());
    // 在字符串中随机挑一个出来，注意！！！！索引的值只能是0到字符串长度-1
    Random random = new Random();
    int index = random.nextInt(info.length());
    System.out.println("随机字符:" + info.charAt(index));
    // 随机五个字符拼接成一个完整的字符
    // StringBuilder是字符串构建器，用于多次字符串对象的修改操作，比如多次拼接
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < 5; i++) {
      index = random.nextInt(info.length());
//      append表示追加字符
      sb.append(info.charAt(index));
    }
    System.out.println("随机字符串：" + sb.toString());


  }


  public void rand5() {
    int min = -5;
    int max = 5;

    RandUtil randUtil = new RandUtil();

    for (int i = 0; i < 20; i++) {
      int result = randUtil.rand(min, max);
      System.out.print(result + " ");
    }
    System.out.println();
  }

  public static void main(String[] args) throws URISyntaxException, IOException {
    // 小的练习1：随机产生20个-5到5的整数并显示
    // 小的练习2：随机产生20个常用的中文字符并显示
    UtilStudy utilStudy = new UtilStudy();
//    utilStudy.rand();
//    utilStudy.rand2();
//    utilStudy.rand3();
//    utilStudy.rand4();

//    Desktop.getDesktop().browse(new URI("https://huhuiyu.top"));
//    Desktop.getDesktop().browse(new URI("https://www.bilibili.com"));

    utilStudy.rand5();

  }

}
